Understanding the Evolution of Code Smells by Observing Smell Clusters
نویسنده
چکیده
Code smells are more likely to stay inter-connected in software rather than remaining as a single instance. These code smell clusters create maintainability issues in evolving software. This paper aims to understand the evolution of the code smells in software, by analyzing the behavior of these clusters such as size, number and connectivity. For this, the clusters are first identified and then these characteristics are observed. The identification of code smell clusters is performed in three steps detection of code smells (God Class, Long Method, Feature Envy, Type Checking) using smell detection tools, extraction of their relationships by analyzing the source code architecture, and generation of graphs from the identified smells and their relationships, that finally reveals the smelly clusters. This analysis was executed on JUnit as a case study, and four important cluster behaviors were reported.
منابع مشابه
The Scent of a Smell: An Extensive Comparison between Textual and Structural Smells
Code smells are symptoms of poor design or implementation choices that have a negative effect on several aspects of software maintenance and evolution, such as program comprehension or changeand fault-proneness. This is why researchers have spent a lot of effort on devising methods that help developers to automatically detect them in source code. Almost all the techniques presented in literatur...
متن کاملA Study of Bad Smells in Code
Software development is an area which is into action for the last fifteen to twenty years. As rapidly as the software development took place, with the same ratio the trend of analysing the code raised. Code smells are structural characteristics of software that may indicate a code or design problem that makes software hard to evolve and maintain, and may trigger refactoring of code. The presenc...
متن کاملTo what extent can maintenance problems be predicted by code smell detection? - An empirical study
Context: Code smells are indicators of poor coding and design choices that can cause problems during software maintenance and evolution. Objective: This study is aimed at a detailed investigation to which extent problems in maintenance projects can be predicted by the detection of currently known code smells. Method: A multiple case study was conducted, in which the problems faced by six develo...
متن کاملExploring the impact of inter-smell relations in the maintainability of a system: An empirical study
Code smells are indicators of deeper problems in the design that may cause difficulties in the evolution of a system. While previous studies have mainly focused on studying the effects of individual smells on maintainability, we believe that interactions tend to occur between code smells. The research in this paper investigates the potential interactions amongst twelve different code smells, an...
متن کاملEnabling Refactoring with HTN Planning to Improve the Design Smells Correction Activity
Refactorings are a key technique to software evolution. They can be used to improve the structure and quality of a software system. This paper introduces a proposal for generating refactoring plans with hierarchical task network planning, to improve the automation of the bad smells correction activity.
متن کامل